#include"comm.h"
#include<unistd.h>
int main()
{

  key_t k=ftok(PATHNAME,PROJ_ID);
  if(k<0)
  {
    printf("ftok error!\n");
    return 1;
  }

//  printf("%x\n",k);
  //申请共享内存
  int shm = shmget(k,SIZE,IPC_CREAT |IPC_EXCL|0666);//组合使用一定是建立的全新的共享内存
  if(shm<0)
  {
    perror("shmget fail\n");
    return 1;
  }
 // printf("shm: %d\n",shm);
  
  //关联进程
 // printf("attach begin!\n");
  //sleep(5);
  char* mem=shmat(shm,NULL,0); //返回值对应共享内存映射到进程地址空间中的虚拟地址的起始地址
//  printf("attach end!\n");
 // sleep(5);
//取消关联
 // printf("dettach begin!\n");
 while(1)
 {
   printf("%s\n",mem);
   sleep(1);
 }
  shmdt(mem);
 // printf("dettach end!\n");
  
  //移除共享内存  
  shmctl(shm,IPC_RMID,NULL); 

  return 0;
}

